package com.shiyanlou.upms.system.service;

import com.shiyanlou.upms.system.domain.UpmsPermission;
import com.shiyanlou.upms.system.domain.UpmsRole;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;


public interface UpmsRoleService {

    int deleteByPrimaryKey(Integer roleId);

    int insert(UpmsRole record);

    int insertSelective(UpmsRole record);

    UpmsRole selectByPrimaryKey(Integer roleId);

    int updateByPrimaryKeySelective(UpmsRole record);

    int updateByPrimaryKey(UpmsRole record);
    //总记录数
    int count(Map<String,Object> map);
    //分页列表
    List<UpmsRole> list(Map<String,Object> map);
    //批量删除
    int batchRemove(Integer[] userIds);
    // 获取用户拥有的资源
    public List<UpmsPermission> selectRoleHasPermissionByRoleId(Long roleId);
    // 更新角色信息
    public int update(UpmsRole upmsRole, Integer[] permissionArr);

    // 通过用户查询角色（分页）
    List<UpmsRole> selectRoleByUserId(Integer userId);
    // 通过用户查询角色（总笔数）
    int selectRoleCountByUserId(Integer userId);
    // 批量添加用户
    int batchAddUser(Integer roleId, Integer[] userIds);

    // 删除用户角色关系
    int deleteUserRoleInfo(Integer roleId, Integer userId);
    // 批量删除
    int batchRemoveRole(Integer roleId, Integer[] userIds);
}
